품질과 프로젝트 관리
품질과 프로젝트 관리
소프트웨어 품질 특성, 비용 추정, WBS, PERT, 팀 조직
소프트웨어 품질
"필요에 적합함" — Kitchenham, 1986
명세 준수 + 의도된 목적에 적합성
주요 품질 특성
| 관점 | 특성 | 설명 |
|---|---|---|
| 기능 | 정확성(Correctness) | 명세에 따라 동작 |
| 신뢰성(Reliability) | 실패 빈도/심각성 최소화 | |
| 견고성(Robustness) | 예상 밖 상황에서도 합리적 동작 | |
| 성능 | 효율성(Efficiency) | 시간/공간 효율성 |
| 사용성 | 사용자 친화성(Usability) | 사용 용이성 |
| 검증 가능성(Verifiability) | 안전하게 검증 가능 | |
| 유지보수 | 유지보수성(Maintainability) | 수정 가능성 + 진화 가능성 |
| 재사용성(Reusability) | 기존 구성요소 재사용 | |
| 이식성(Portability) | 다양한 환경에서 동작 | |
| 이해성(Understandability) | 이해 용이성 | |
| 운영 | 상호운용성(Interoperability) | 다른 시스템과 협력 |
| 보안(Security) | 악의적 공격으로부터 보호 | |
| 안전성(Safety) | 위험 상황 회피 및 경고 |
ISO 품질 표준
- ISO 9126: 6가지 (기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성)
- ISO 25010: 8가지 (ISO 9126 + Performance, Compatibility)
생산성 측정
| 방법 | 설명 | 장단점 |
|---|---|---|
| LOC (Line of Code) | 코드 줄 수 기반 | 간단하지만 언어/복잡도 무시 |
| FP (Function Points) | 기능 복잡성 정량화 | 언어 독립적, 비교 가능 |
비용 추정
COCOMO
- KDSI(Kilo Delivered Source Instructions) 기반
- 3가지 개발 모드:
- Organic: 소규모, 경험 많은 팀
- Semidetached: 중간 규모, 혼합 경험
- Embedded: 엄격한 제약 조건
COCOMO II
- Function Point 및 반복적 접근 지원
기타 방법
- Delphi Method: 전문가 의견 합의
- Analogy-based: 유사 프로젝트 비교
- Top-down / Bottom-up: 전체→세부 / 세부→전체
프로젝트 제어 기법
WBS (Work Breakdown Structure)
- 목표를 중간 목표로 계층적 분할
- 작업 단위를 명확히 정의
Gantt Chart
- 일정, 예산, 자원 계획 시각화
- 단점: 작업 간 의존성 표시 불가
PERT Chart
- 활동 간 의존성 표현
- 임계 경로(Critical Path) 식별 → 프로젝트 최소 완료 시간
Kanban Board
- 진행 중인 작업 시각화
- 병목(Bottleneck) 식별 및 WIP(진행중 작업) 제한
팀 조직
| 유형 | 적합한 상황 | 특징 |
|---|---|---|
| 중앙 집중형 | 소규모/단기 프로젝트 | 주 프로그래머 중심 |
| 분산 제어형 | 장기/복잡 프로젝트 | 합의 기반 |
| 하이브리드 | 대규모 프로젝트 | 두 구조 결합 |
위험 관리
일반적 위험
- 요구사항 변경
- 적합 인력 부족
위험 감소 방법
- 프로토타이핑
- 점진적 전달
- 모듈형 설계